package com.yoyo.itravel.bean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description 景点具体门票类型实体类
 *
 * @author HZX
 * @date 2020/5/9 0:42
 */
public class TicketTypeDetail implements Serializable {

    private String detailTypeId; // 具体门票类型id
    private String detailTypeName; // 具体门票类型名称
    private BigDecimal orderPrice; // 具体门票类型预定价格
    private BigDecimal initPrice; // 具体门票类型原始价格
    private Integer isOrder; // 是否可预定(0:不可预订，1:可预订)
    private Integer isCancel; // 是否可取消(0:不可取消，1:可取消)
    private String cancelRule; // 取消条件
    private String isInstantConfirm; // 是否立即确认(0:否，1:是)
    private Date startOrderDate; // 开始预定的日期，如果没有指定则默认为当前日期
    private Integer enOrderDays; // 可提前预定的天数
    private Date stopOrderDate; // 预定截止日期，由开始预定的日期和可提前预定的天数计算
    private Integer maxOrderNum; // 每人最多可预定的数量
    private Integer initStockNum; // 原始库存数
    private Integer nowStockNum; // 实时库存数
    private Date recordTime; // 记录时间
    private String description; // 描述

    private String ticketTypeId; // 所属门票类型id
    private TicketType ticketType; // 所属门票类型对象

    private List<SightTicketStock> sightTicketStocks; // 景点门票具体类型门票库存集合

    public TicketTypeDetail() {
    }

    public TicketTypeDetail(String detailTypeId, String detailTypeName, BigDecimal orderPrice, BigDecimal initPrice, Integer isOrder, Integer isCancel, String isInstantConfirm, String ticketTypeId, TicketType ticketType) {
        this.detailTypeId = detailTypeId;
        this.detailTypeName = detailTypeName;
        this.orderPrice = orderPrice;
        this.initPrice = initPrice;
        this.isOrder = isOrder;
        this.isCancel = isCancel;
        this.isInstantConfirm = isInstantConfirm;
        this.ticketTypeId = ticketTypeId;
        this.ticketType = ticketType;
    }

    public TicketTypeDetail(String detailTypeId, String detailTypeName, BigDecimal orderPrice, BigDecimal initPrice, Integer isOrder, Integer isCancel, String cancelRule, String isInstantConfirm, Date startOrderDate, Integer enOrderDays, Date stopOrderDate, Integer maxOrderNum, Integer initStockNum, Integer nowStockNum, Date recordTime, String description, String ticketTypeId, TicketType ticketType) {
        this.detailTypeId = detailTypeId;
        this.detailTypeName = detailTypeName;
        this.orderPrice = orderPrice;
        this.initPrice = initPrice;
        this.isOrder = isOrder;
        this.isCancel = isCancel;
        this.cancelRule = cancelRule;
        this.isInstantConfirm = isInstantConfirm;
        this.startOrderDate = startOrderDate;
        this.enOrderDays = enOrderDays;
        this.stopOrderDate = stopOrderDate;
        this.maxOrderNum = maxOrderNum;
        this.initStockNum = initStockNum;
        this.nowStockNum = nowStockNum;
        this.recordTime = recordTime;
        this.description = description;
        this.ticketTypeId = ticketTypeId;
        this.ticketType = ticketType;
    }

    public String getDetailTypeId() {
        return detailTypeId;
    }

    public void setDetailTypeId(String detailTypeId) {
        this.detailTypeId = detailTypeId;
    }

    public String getDetailTypeName() {
        return detailTypeName;
    }

    public void setDetailTypeName(String detailTypeName) {
        this.detailTypeName = detailTypeName;
    }

    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    public BigDecimal getInitPrice() {
        return initPrice;
    }

    public void setInitPrice(BigDecimal initPrice) {
        this.initPrice = initPrice;
    }

    public Integer getIsOrder() {
        return isOrder;
    }

    public void setIsOrder(Integer isOrder) {
        this.isOrder = isOrder;
    }

    public Integer getIsCancel() {
        return isCancel;
    }

    public void setIsCancel(Integer isCancel) {
        this.isCancel = isCancel;
    }

    public String getIsInstantConfirm() {
        return isInstantConfirm;
    }

    public void setIsInstantConfirm(String isInstantConfirm) {
        this.isInstantConfirm = isInstantConfirm;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getTicketTypeId() {
        return ticketTypeId;
    }

    public void setTicketTypeId(String ticketTypeId) {
        this.ticketTypeId = ticketTypeId;
    }

    public TicketType getTicketType() {
        return ticketType;
    }

    public void setTicketType(TicketType ticketType) {
        this.ticketType = ticketType;
    }

    public List<SightTicketStock> getSightTicketStocks() {
        return sightTicketStocks;
    }

    public void setSightTicketStocks(List<SightTicketStock> sightTicketStocks) {
        this.sightTicketStocks = sightTicketStocks;
    }

    public String getCancelRule() {
        return cancelRule;
    }

    public void setCancelRule(String cancelRule) {
        this.cancelRule = cancelRule;
    }

    public Date getStartOrderDate() {
        return startOrderDate;
    }

    public void setStartOrderDate(Date startOrderDate) {
        this.startOrderDate = startOrderDate;
    }

    public Integer getEnOrderDays() {
        return enOrderDays;
    }

    public void setEnOrderDays(Integer enOrderDays) {
        this.enOrderDays = enOrderDays;
    }

    public Integer getMaxOrderNum() {
        return maxOrderNum;
    }

    public void setMaxOrderNum(Integer maxOrderNum) {
        this.maxOrderNum = maxOrderNum;
    }

    public Date getStopOrderDate() {
        return stopOrderDate;
    }

    public void setStopOrderDate(Date stopOrderDate) {
        this.stopOrderDate = stopOrderDate;
    }

    public Integer getInitStockNum() {
        return initStockNum;
    }

    public void setInitStockNum(Integer initStockNum) {
        this.initStockNum = initStockNum;
    }

    public Integer getNowStockNum() {
        return nowStockNum;
    }

    public void setNowStockNum(Integer nowStockNum) {
        this.nowStockNum = nowStockNum;
    }

    public Date getRecordTime() {
        return recordTime;
    }

    public void setRecordTime(Date recordTime) {
        this.recordTime = recordTime;
    }

    @Override
    public String toString() {
        return "TicketTypeDetail{" +
                "detailTypeId='" + detailTypeId + '\'' +
                ", detailTypeName='" + detailTypeName + '\'' +
                ", orderPrice=" + orderPrice +
                ", initPrice=" + initPrice +
                ", isOrder=" + isOrder +
                ", isCancel=" + isCancel +
                ", cancelRule='" + cancelRule + '\'' +
                ", isInstantConfirm='" + isInstantConfirm + '\'' +
                ", startOrderDate=" + startOrderDate +
                ", enOrderDays=" + enOrderDays +
                ", stopOrderDate=" + stopOrderDate +
                ", maxOrderNum=" + maxOrderNum +
                ", initStockNum=" + initStockNum +
                ", nowStockNum=" + nowStockNum +
                ", recordTime=" + recordTime +
                ", description='" + description + '\'' +
                ", ticketTypeId='" + ticketTypeId + '\'' +
                ", ticketType=" + ticketType +
                ", sightTicketStocks=" + sightTicketStocks +
                '}';
    }
}
